<?php

//开启 SESSION，用于往客户端输出验证码
session_start();

//创建真彩画布
$image = imagecreatetruecolor(100,30);

//在画布上分配(allocate)一种颜色  背景默认白色
$bg_color = imagecolorallocate($image,255,255,255);

//将画布背景设置为白色  0,0设置相对位置
imagefill($image,0,0,$bg_color);

//验证码字符
$captch_code = "";

// $font = '//blog_system//home//view//font//arial.ttf';        //引用字体库

//设置字符字典
$code_source = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

for($i=0;$i<4;$i++){
    
    $font = 8;     //设置字体颜色
    $fontcolor = imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));       //生成随机颜色

    $current_litter = substr($code_source,rand(0,strlen($code_source)),1);      //随机获取一个字符
    $captch_code .= $current_litter;   //拼接最终字符

    $x = ($i*100/4)+rand(5,10);
    $y = rand(5,10);

    // imagettftext($image,$fontsize,rand(-30,30),$x,$y,$fontcolor,$font,$current_litter);      //输出字符
    imagestring($image,$font,$x,$y,$current_litter,$fontcolor);
}

$_SESSION['comment_captch'] = $captch_code;


//为验证码增加干扰元素
//加200各点
for ($i=0; $i < 200; $i++) { 
    $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
    imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
}

//加3条线   
for ($i=0; $i < 3; $i++) { 
    $linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
    imageline($image, rand(1,99), rand(1,29),rand(1,99), rand(1,29) ,$linecolor);
}

header('content-type:image/png');       //设置头信息，告诉浏览器是一张图片
imagepng($image);       //输出为 png 格式的图片 
 
//销毁图片对象
imagedestroy($image);
